/**
 *
 */
package com.yangtao.prototype.system.organization.service;

import com.yangtao.prototype.system.organization.web.OrganizationModel;

/**
 * @author 杨涛
 */
public interface OrganizationService {
	/**
	 * 根据组织机构ID加载组织机构单条数据信息
	 *
	 * @param model
	 * @return
	 */
	OrganizationModel loadOrganization(OrganizationModel model);

	/**
	 * 编号和名称不可重复<br>
	 *
	 * @param model
	 * @return
	 */
	OrganizationModel addOrganization(OrganizationModel model);

	/**
	 * 根据对象相关信息数据对组织机构进行新增或修改
	 * 编号不可修改，名称可修改不可重复
	 *
	 * @param model
	 * @return
	 */
	OrganizationModel updateOrganization(OrganizationModel model);

	/**
	 * 根据组织机构对象进行删除操作, 以下注意项为Y不可删除
	 * 注意项：
	 * 1.判断是否有子组织机构
	 * 2.判断组织机构是否有用户
	 * 3.机构下是否有角色
	 * 4.机构下是否有仓库
	 *
	 * @param model
	 * @return
	 */
	OrganizationModel deleteOrganization(OrganizationModel model);

	/**
	 * 根据对象相关数据信息查询符合数据条件分页数据集
	 *
	 * @param model
	 * @return
	 */
	OrganizationModel list(OrganizationModel model);

	/**
	 * 查询组织机构树
	 *
	 * @param model
	 * @return
	 */
	OrganizationModel findOrganizationTree(OrganizationModel model);
}
